#include <iostream>
#include <string>
#include <stdio.h>
#include <stdlib.h>
#include <sstream>

using namespace std;

struct node
{
	int data;
   node *next;
};

class Queue{
 
		public:
				 node *head, *tail;
				 int size;
				 Queue(){head=tail=NULL;size=0;};
				 void enqueue(node * newNode);
				 node * dequeue();
				 int getsize();		
};

void Queue::enqueue(node * newNode){
	  tail->next=newNode;
	  tail=newNode;	  
	  newNode->next=NULL;
	  size++;
	  cout << "enqueue!";
	  return;
}

node * Queue::dequeue(){
		node * temp;
		if (this->size == 0|| this->head==NULL)
			return NULL;		
		temp=head;
		head=temp->next;
		temp->next=NULL;
		size--;
		cout << "dequeue!";
		return temp;
}
int Queue::getsize(){
	 cout<<"size="<<size;
	 return size;
}

int main(){
	 Queue * testQ;
	 testQ= new Queue();
	 //node * nodePtr;
	 //nodePtr->data=1;
	 //nodePtr->next=NULL;
	 //int b=nodePtr->data;
	 int a=testQ->size;
	 int b=testQ->;
	 int c=testQ->tail;
	 //testQ->enqueue(nodePtr);
	 cout<<a<<endl;
	 cout<<b<<endl;
	 cout<<c<<endl;
	 //cout<<b<<endl;
	 getchar();
	 return 0;	 
}
